<?php

/**
 * 
 * Autor				: 	Juan Jose Muñiz Juarez
 * Fecha de Creacion	: 	03/05/2012,  23:31:56
 * Version 				: 	1.0
 * Descripcion 			:
 */

if ( !defined( "BD_HOST" ) )
   {
      require_once '../../config/Constantes.php';
   }

$ruta_sistema = RUTA_FISICA_SISTEMA . "/sistema/";

include_once $ruta_sistema . 'general/clases/comun/logger/Log.php';

class ConexionTmp
   {
      private $_hostname;
      private $_user;
      private $_pass;
      private $_database;
      private $_conexion;
      private $_log;

      /**
       * 
       * Nombre         	: 	__construct
       * Descripcion      	:	
       * Version 			:  	1.0
       * Autor:			   :	Juan Jose Muñiz Juarez
       * Fecha y Hora		:	03/05/2012, 23:32:49
       * @param unknown_type $hostname
       * @param unknown_type $user
       * @param unknown_type $pass
       * @param unknown_type $database
       */
      public function __construct( $hostname = "localhost", $user = "root", $pass = "", $database = "sitkd" )
         {
            if ( defined( "BD_HOST" ) )
               {
                  $this -> _hostname = BD_HOST;
               }
            else
               {
                  $this -> _hostname = $hostname;
                  //echo "Entro";
               }

            if ( defined( "BD_USER" ) )
               {
                  $this -> _user = BD_USER;
               }
            else
               {
                  $this -> _user = $user;
               }

            if ( defined( "BD_PASS" ) )
               {
                  $this -> _pass = BD_PASS;
               }
            else
               {
                  $this -> _pass = $pass;
               }

            if ( defined( "BD_DATABASE" ) )
               {
                  $this -> _database = BD_DATABASE;
               }
            else
               {
                  $this -> _database = $database;
               }
         }

      /**
       * 
       * Nombre         	: 	getLogger
       * Descripcion   	:	
       * Version 			:  	1.0
       * Autor:			:	Juan Jose Muñiz Juarez
       * Fecha y Hora		:	03/05/2012, 23:33:35
       * @param unknown_type $class
       */
      private function getLogger( $class )
         {
            if ( $this -> _log )
               {
                  $this -> _log -> _clase = $class;
               }
            else
               {
                  $this -> _log = new Logger( $class );
               }
         }

         /**
          * 
          * Nombre         	: 	getConexion
          * Descripcion   	:	
          * Version 			:  	1.0
          * Autor:			:	Juan Jose Muñiz Juarez
          * Fecha y Hora		:	03/05/2012, 23:38:56
          * @param unknown_type $generar_log
          * @return resource
          */
       public function getConexion( $class = null, $generar_log = true )
         {
            if ( $generar_log )
               {
                  $this -> getLogger( $class );

                  $this -> _log -> debug(  "Se esta intentando crear la conexion a la base de datos con la siguiente informacion " . PHP_EOL . 
                                          " <label class='debug'>Hostname : </label> <label class='info_debug'>" . $this -> _hostname . "</label>" . PHP_EOL .
                                          " <label class='debug'>Usuario : </label> <label class='info_debug'>" . $this -> _user . "</label>" . PHP_EOL . 
                                          " <label class='debug'>Password : </label> <label class='info_debug'>" . $this -> _pass . "</label>" . PHP_EOL . PHP_EOL, __METHOD__, __LINE__ );
               }

            $this -> _conexion = mysql_connect( $this -> _hostname, $this -> _user, $this -> _pass );
            
            //var_dump( $this -> _conexion);
            return $this -> _conexion;
         }

         /**
          * 
          * Nombre         	: 	getConexionDB
          * Descripcion   	:	
          * Version 			:  	1.0
          * Autor:			:	Juan Jose Muñiz Juarez
          * Fecha y Hora		:	05/05/2012, 17:26:18
          * @param unknown_type $base_datos
          * @param unknown_type $clase
          * @param unknown_type $generar_log
          * @return resource
          */
       public function getConexionDB( $base_datos, $class = null, $generar_log = true )
         {
            $conexion = $this -> getConexion();
                        
            $this -> conectarDB( $base_datos, $class, $generar_log ); 
            
            return $conexion;
         }  
         
         /**
          * 
          * Nombre         	: 	conectarDB
          * Descripcion   	:	
          * Version 			:  	1.0
          * Autor:			:	Juan Jose Muñiz Juarez
          * Fecha y Hora		:	03/05/2012, 23:34:37
          * @param unknown_type $class
          * @param unknown_type $generar_log
          */
      private function conectarDB( $base_datos, $class, $generar_log = true )
         {
            // Si no se ha creado la conexion entonces la generamos           
            if ( $this -> _conexion )
               {
                  mysql_select_db( $base_datos, $this -> _conexion );

                  mysql_query( "SET NAMES 'utf-8'" );

                  if ( $generar_log )
                     {
                        $this -> _log -> debug( "Conectando al servidor: " . PHP_EOL . 
                                           " <label class='debug'>Hostname : </label> <label class='info_debug'>" . $this -> _hostname . "</label>" . PHP_EOL . 
                                           " <label class='debug'>Usuario : </label> <label class='info_debug'>" . $this -> _user . "</label>" . PHP_EOL . 
                                           " <label class='debug'>Password : </label> <label class='info_debug'>" . $this -> _pass . "</label>" . PHP_EOL . 
                                           " <label class='debug'>Base de Datos : </label> <label class='info_debug'>" . $base_datos . "</label>" . PHP_EOL, __METHOD__, __LINE__ );
                     }

               }
            else
               {
                  if ( $generar_log )
                     {
                        $this -> _log -> fatal( "Error al conectar al servidor: " . PHP_EOL . 
                                                " debug{ Hostname }: " . $this -> _hostname . PHP_EOL . 
                                                " debug{ Usuario } : " . $this -> _user . PHP_EOL . 
                                                " debug{ Password } : " . $this -> _pass . PHP_EOL . 
                                                " debug{ Base de Datos } : " . $base_datos . PHP_EOL . " debug{ Error: } " . mysql_error( ), __METHOD__, __LINE__ );
                     }

                  die( "Error al intentar conectar al servidor, contacte con la persona encargada del sistema: " );
               }
         }

      /**
       * 
       * Metodo: cerrarConexion
       * Descripcion: 
       * Fecha de Creacion: 06/03/2012 19:27:21
       * Autor: Juan José Muñiz Juárez
       * params: @param unknown_type $conexion
       * return: return_type
       */
      public function cerrarConexion( )
         {
            if ( !empty( $this -> _conexion ) )
               {
                  mysql_close( $this -> _conexion  );
               }
         }

      public function __toString( )
         {
            //return "Host : " . $this -> _hostname . PHP_EOL . " Usuario : " . $this -> _user . PHP_EOL . " Password: " . $this -> _pass . PHP_EOL . " Base de datos: " . $this -> _database;
         }
   }

?>